#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<ctype.h>
#include<string.h>
#include"makeLexemes.cpp"

struct node_t
{
    struct lexeme* lex;
    int numVar;
    node_t* left;
    node_t* right;
};
node_t* getNum(program* p);
node_t* getG(program* p);//general
node_t* getPr(program* p);//program
node_t* getE(program* p);
node_t* getP(program* p);
node_t* getOp(program* p);//operator
node_t* getD(program* p);//Declaration
node_t* getF(program* p);//Function
node_t* getV(program* p);//Var
node_t* getL(program* p);//Line
node_t* getT(program* p);
int createVar(program* p);
int findVar(program* p, char temp[]);
node_t* newNode(lexeme* lex, int numVar, node_t* left, node_t* right);
void printTree(node_t* n);
